package main

import (
	"fmt"
	"github.com/go-redis/redis"
)

func main() {

	client := redis.NewClient(&redis.Options{
		Addr:     "162.14.70.254:6379",
		Password: "123456",
		DB:       2,
	})

	fmt.Println("连接成功", client)

	//// 插入一条数据，从列表左边插入
	//client.LPush("list", "a", "b", "c")
	//val01, _ := client.LIndex("list", 0).Result()
	//duration, _ := client.TTL("list").Result()
	//fmt.Println(val01, duration)
	//
	//// 批量插入数据，从列表左边插入
	//client.LPush("list", 1, 2, 3, 4, 5)
	//val02, _ := client.LIndex("list", 4).Result()
	//fmt.Println(val02)
	//
	//// 根据范围获取数据
	//val03, _ := client.LRange("list", 0, -1).Result()
	//fmt.Println(val03)

	// 从列表的右边删除第一个数据，并返回删除的数据
	val04, _ := client.RPop("list").Result()
	fmt.Println(val04)

	// 从列表的右边插入数据
	client.RPush("list", 11, 12, 13, 14, 15)
	// 根据范围获取数据
	val05, _ := client.LRange("list", 0, -1).Result()
	fmt.Println(val05)

	// 返回列表的长度
	val06, _ := client.LLen("list").Result()
	fmt.Println(val06)

	// 删除操作
	// 批量删除数据，删除第一个匹配的数据
	// 可以删除多次，0是删除全部的
	client.LRem("list", 1, 11)
	val07, _ := client.LRange("list", 0, -1).Result()
	fmt.Println(val07)

	// 在指定位置插入数据，在某个元素的左边插入
	client.LInsert("list", "BEFORE", 12, 10)
	val08, _ := client.LRange("list", 0, -1).Result()
	fmt.Println(val08)
}
